#include <stdio.h>

int main(int argc, const char *argv[])
{
	char v1 = 0;
	char v2 = 0;
	char v3 = 0;
#if 0	
	// 场景1：连续多次调用scanf获取字符时
	scanf("%c", &v1);
	getchar(); // 使用getchar吃掉垃圾字符即可
	scanf("%c", &v2);
	getchar();
	scanf("%c", &v3);
	getchar();
#endif

#if 0
	// 场景2：一次调用scanf函数获取多个字符时
	//scanf("%c%c%c", &v1, &v2, &v3); // 会有垃圾字符问题
	scanf("%c%*c%c%*c%c", &v1, &v2, &v3); 
	// %*c 抑制符 作用是读取内容但不赋值给后面的变量
	// 这种用法下 也没法连续输入 ABC 了 因为抑制符是一定要吃掉一个字符的
#else
	// 也可以使用 空格 来吃掉所有的垃圾字符
	// 弊端：想获取空格或者回车时 也获取不到了
	scanf("%c %c %c", &v1, &v2, &v3); 
#endif

	printf("v1 = [%d][%c]\n", v1, v1);
	printf("v2 = [%d][%c]\n", v2, v2);
	printf("v3 = [%d][%c]\n", v3, v3);


	return 0;
}
